package com.bood.shimmer.shiro;

import org.apache.shiro.authc.AuthenticationToken;

/**
 * <p>
 * 一个用于 Shiro 使用的 Authentication，因为使用 JWT 需要有自己的身份信息，所以使用针对 Token 定制的信息
 * </p>
 *
 * @author：bood
 * @date：2020/9/24
 */
public class JwtToken implements AuthenticationToken {

    /**
     * token
     */
    private String token;


    public JwtToken() {
    }

    /**
     * token 作为两者进行提交，使用构造方法进行初始化
     *
     * @param token 用户提交的 token
     */
    public JwtToken(String token) {
        this.token = token;
    }


    /**
     * 在 UserNamePasswordToken 中，使用的是账号和密码来作为主体和签证,这里我们使用 Token 登录
     * 两者的 get 都是获取 token
     */
    @Override
    public Object getPrincipal() {
        return token;
    }

    @Override
    public Object getCredentials() {
        return token;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    /****************************************** 自定义参数 ****************************************************/

    /**
     * ID
     */
    private String id;
    /**
     * IP
     */
    private Integer ip;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Integer getIp() {
        return ip;
    }

    public void setIp(Integer ip) {
        this.ip = ip;
    }

}

